
package situ.autoweter.service.impl;
import java.util.*;




import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.alibaba.fastjson.JSONObject;
import situ.autoweter.entity.USUser1;
import situ.autoweter.service.RdReadService;
import situ.autoweter.dao.RdReadDao;
import situ.autoweter.common.Assist;
import situ.autoweter.entity.RdRead;
/**
 * RdRead的服务接口的实现类
 * 
 * @author 
 *
 */
@Service
public class RdReadServiceImpl implements RdReadService {
	private final Logger LOG = LogManager.getLogger(this.getClass());

	@Autowired
	private RdReadDao rdReadDao;
	// TODO 当你看到这个方法时你应该创建一个工具类做通用的方法,定义自己的返回格式化
	private static final int C200 = 200;
	private static final int C412 = 412;

	public String resultFormat(int code, Object data) {
		JSONObject result = new JSONObject();
		result.put("code", code);
		if (data != null) {
			result.put("data", data);
		}
		return result.toJSONString();
	}

	/**
	 * 多条件查询-张俊作
	 */

	@Override
	public List<RdRead> selectByif(RdRead rdRead) {
		return rdReadDao.selectByif(rdRead);
	}


	@Override
	public List<RdRead> find(RdRead value) {
		//TODO这里可以做通过Assist做添加查询
		List<RdRead> result = rdReadDao.selectRdRead(null);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行获取RdRead数据集-->结果:", result);
		}
		return result;
	}


	/**
	 * 罗艳写的
	 */

	@Override
	public Map queryupdate(Integer id) {
		if (id == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行通过RdRead的id获得RdRead对象-->失败:id不能为空");
			}
			return null;
		}
		Map map = rdReadDao.selectqueryupdate(id);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行通过RdRead的id获得RdRead对象-->结果:", map);
		}
		return map;
	}


	@Override
	public List<Map> find2(RdRead value) {
		List<Map> result = rdReadDao.selectRdReadForMap(value);
		return result;
	}


	@Override
	public RdRead findOne(Object id) {
		if (id == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行通过RdRead的id获得RdRead对象-->失败:id不能为空");
			}
			return null;
		}
		RdRead result = rdReadDao.selectRdReadById(id);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行通过RdRead的id获得RdRead对象-->结果:", result);
		}
		return result;
	}

	@Override
	public String saveNotNull(RdRead value) {
		if (value == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行将RdRead中属性值不为null的数据保存到数据库-->失败:对象不能为空");
			}
			return resultFormat(C412, null);
		}
		int result = rdReadDao.insertNotNullRdRead(value);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行将RdRead中属性值不为null的数据保存到数据库-->结果:", result);
		}
		return resultFormat(C200, result);
	}

	@Override
	public String updateNotNullById(RdRead value) {
		if (value == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行通过RdRead的id更新RdRead中属性不为null的数据-->失败:对象为null");
			}
			return resultFormat(C412, null);
		}
		int result = rdReadDao.updateNotNullRdReadById(value);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行通过RdRead的id更新RdRead中属性不为null的数据-->结果:", result);
		}
		return resultFormat(C200, result);
	}

	@Override
	public String deleteById(Object id) {
		if (id == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行通过RdRead的id删除RdRead-->失败:id不能为空");
			}
			return resultFormat(C412, null);
		}
		int result = rdReadDao.deleteRdReadById(id);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行通过RdRead的id删除RdRead-->结果:", result);
		}
		return resultFormat(C200, result);
	}

	@Override


	public void updateNotNullByIdHHl(Integer readEmpID, Integer id) {
		rdReadDao.updateNotNullByIdHHl(readEmpID,id);
	}


 	public Map queryChangeValueById(Integer id) {
		if (id == null) {
			if (LOG.isDebugEnabled()) {
				LOG.debug("执行通过RdRead的id获得RdRead对象-->失败:id不能为空");
			}
			return null;
		}
		Map map = rdReadDao.queryChangeValueById(id);
		if (LOG.isDebugEnabled()) {
			LOG.debug("执行通过RdRead的id获得RdRead对象-->结果:", map);
		}
		return map;
	}




	public List<Map> queryReportReadingFY(RdRead rdRead){

 		return rdReadDao.queryReportReadingFY(rdRead);
	}

	//刘旻的东西

	@Override
	public List<Map> Show() {
		List<Map> list=rdReadDao.Show();
		return list;
	}

	@Override
	public List<Map> queryById(int id) {
		List<Map> list=rdReadDao.Find(id);
		return list;
	}

	@Override
	public List<Map> ShowUS(RdRead rdRead) {
		List<Map> list=rdReadDao.ShowUs(rdRead);
		return list;
	}

	@Override
	public List<Map> MhFind(USUser1 user1) {
		List<Map> list=rdReadDao.MhFind(user1);
		return list;
	}

	@Override
	public int Update(int ID) {
		int i=rdReadDao.Update(ID);
		return i;
	}
}